package com.lmaos.basetools.authority;
/**
 * 
 * @author lmaos
 *
 * <p>作者：张星宇</p>
 * <p>时间：2017年5月25日 下午10:31:31</p>
 * <p>说明:权限管理		</p>
 *
 */
public interface AuthorityMg {
	/**
	 * 说明：获得用户权限		<br>
	 * 时间：2017年5月25日 下午10:31:47
	 *
	 * @param userRoleKey
	 * @return
	 */
	public UserAuthority getUserAuthority(String userRoleKey);
	/**
	 * 说明：添加用户权限,调用时权限存在则会被替换		<br>
	 * 时间：2017年5月25日 下午10:32:00
	 *
	 * @param userRoleKey
	 * @param userAuthority
	 */
	public void setUserAuthority(String userRoleKey,UserAuthority userAuthority);
	/**
	 * 说明：添加用户权限,如果权限存在则不会被替换		<br>
	 * 时间：2017年6月27日 上午10:25:04
	 *
	 * @param userRoleKey 角色key
	 * @param capacity	权限储存的初始空间大小
	 */
	public void addUserAuthority(String userRoleKey,int capacity);
	/**
	 * 说明：添加用户权限,如果权限存在则不会被替换		<br>
	 * 时间：2017年6月27日 上午10:25:04
	 *
	 * @param userRoleKey 角色key
	 */
	public void addUserAuthority(String userRoleKey);
	/**
	 * 说明：获得用户角色		<br>
	 * 时间：2017年5月25日 下午10:32:08
	 *
	 * @param userRoleKey
	 * @return
	 */
	public UserRole getUserRole(String userRoleKey);
	/**
	 * 说明：获取角色		<br>
	 * 时间：2017年6月1日 下午11:01:30
	 *
	 * @param userRoleKey
	 * @return
	 */
	public String getUserRoleNickname(String userRoleKey);
	/**
	 * 说明：添加用户角色		<br>
	 * 时间：2017年5月25日 下午10:32:18
	 *
	 * @param userRoleKey
	 * @param userRole
	 */
	public void addUserRole(UserRole userRole);
	/**
	 * 说明：移除这个角色的权限		<br>
	 * 时间：2017年6月1日 下午11:00:30
	 *
	 * @param UserAuthority
	 * @return
	 */
	public UserAuthority removeUserAuthority(String userRoleKey);
	
	public boolean existUserAuthority(String userRoleKey);
	
	public boolean existUserRole(String userRoleKey);
}
